#include "widget.h"
#include "ui_widget.h"
#include <QMouseEvent>
#include <QDebug>
#include <QEvent>
#include "mylabel.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //创建自定一的myLabel文本框
    label=new myLabel(this);
    //设置文本内容
    label->setText("这是一个文本");
    //设置大小和尺寸
    label->setGeometry(100,100,300,200);
    //给这个文本框添加框线
    label->setFrameShape(QFrame::Box);

    //给label文本框中安装事件过滤器
    label->installEventFilter(this);
}

Widget::~Widget()
{
    delete ui;
}

bool Widget::eventFilter(QObject *obj, QEvent *e)
{
    //判断是不是myLabel控件
    if(obj==this->label)
    {
        //过滤鼠标点击事件
        if(e->type()==QEvent::MouseButtonPress)
        {
            QMouseEvent *event=static_cast<QMouseEvent *>(e);
            qDebug()<<"事件过滤 鼠标按下事件";
            return true;//将鼠标按下事件给过滤掉
        }
    }
    //其他的事件交给父类去处理
    return QWidget::eventFilter(obj,e);
}

